#!/bin/bash

# docker清理工具

RESET='\033[0m'
BOLD='\033[1m'
UNDERLINE='\033[4m'
BLINK='\033[5m'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
MAGENTA='\033[0;35m'

clear_docker_cache() {
    echo -e "${BOLD}${BLUE}清除 Docker 构建缓存...${RESET}"
    docker builder prune -f
}

clear_unused_docker_resources() {
    echo -e "${BOLD}${BLUE}清除 Docker 未使用的资源...${RESET}"
    docker system prune -f
}

stop_and_remove_all_containers() {
    echo -e "${BOLD}${BLUE}停止并删除所有容器...${RESET}"
    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
}

clear_all_docker_resources() {
    echo -e "${BOLD}${RED}警告: 这将清除所有 Docker 资源!${RESET}"
    echo -e "${BOLD}${BLUE}清除 Docker 所有资源...${RESET}"
    docker system prune -a -f
}

show_menu() {
    echo -e "${UNDERLINE}${YELLOW}请选择一个选项：${RESET}"
    echo -e "${BOLD}1)${GREEN} ${BOLD}清除 Docker 缓存${RESET}"
    echo -e "${BOLD}2)${GREEN} ${BOLD}清除 Docker 未使用的资源${RESET}"
    echo -e "${BOLD}3)${GREEN} ${BOLD}停止并删除所有容器${RESET}"
    echo -e "${BOLD}4)${GREEN} ${BOLD}清除 Docker 所有资源${RESET}"
    echo -e "${BOLD}q)${GREEN} ${BOLD}退出脚本${RESET}"
}

while true; do
    show_menu
    read -p "输入你的选择: " choice

    case $choice in
        1)
            clear_docker_cache
            ;;
        2)
            clear_unused_docker_resources
            ;;
        3)
            stop_and_remove_all_containers
            ;;
        4)
            clear_all_docker_resources
            ;;
        q)
            echo -e "${BOLD}${BLUE}退出脚本...${RESET}"
            break
            ;;
        *)
            echo -e "${BOLD}${RED}无效的选择，请重试。${RESET}"
            ;;
    esac
    echo
done